<html>
<head><meta charset="utf-8"><title>illegal subset relations polonius#99 · t-compiler/wg-polonius · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/index.html">t-compiler/wg-polonius</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/illegal.20subset.20relations.20polonius.2399.html">illegal subset relations polonius#99</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="161234884"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/illegal%20subset%20relations%20polonius%2399/near/161234884" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/illegal.20subset.20relations.20polonius.2399.html#161234884">(Mar 20 2019 at 11:00)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> thanks for the initial review on <a href="https://github.com/rust-lang-nursery/polonius/issues/99" target="_blank" title="https://github.com/rust-lang-nursery/polonius/issues/99">polonius#99</a>, as mentioned in the PR I opened it for discussion around how we expect errors to work (since these are a different kind of error than before, and it's the first such new kind) in polonius itself and in communicating them with rustc; if this was an acceptable way to do so for this new kind; how would we expect to organize tests for the different kinds of errors (we talked about reorganizing them before, providing higher levels assertions to check for facts, reducing duplication, and more).</p>



<a name="161234996"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/illegal%20subset%20relations%20polonius%2399/near/161234996" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/illegal.20subset.20relations.20polonius.2399.html#161234996">(Mar 20 2019 at 11:02)</a>:</h4>
<p>I'm also unsure about the plan for these errors, especially that they can be "duplicated" per cfg point where the regions in error are live (I forget the details, handwaving here)</p>



<a name="161235240"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/illegal%20subset%20relations%20polonius%2399/near/161235240" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/illegal.20subset.20relations.20polonius.2399.html#161235240">(Mar 20 2019 at 11:06)</a>:</h4>
<p>but if the PR is good enough (modulo the "Relation" comment ofc which I'll fix ASAP) I can also just add tests as we've been writing them (might also be interesting to accept the lack of a relation facts file as an empty relation + a warning or something: a tiny bit more backwards compatibility with old facts generated by rustc)</p>



<a name="161235368"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/illegal%20subset%20relations%20polonius%2399/near/161235368" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/illegal.20subset.20relations.20polonius.2399.html#161235368">(Mar 20 2019 at 11:08)</a>:</h4>
<p>and also I forgot: discussion about this kind of errors in 1) datafrogopt, and whether they matter in 2) the location insensitive analysis, 3) ofc the hybrid analysis</p>



<a name="161235414"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/illegal%20subset%20relations%20polonius%2399/near/161235414" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/illegal.20subset.20relations.20polonius.2399.html#161235414">(Mar 20 2019 at 11:09)</a>:</h4>
<p>(and ofc then I'll need to make rustc emit these facts)</p>



<a name="164021568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/illegal%20subset%20relations%20polonius%2399/near/164021568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/illegal.20subset.20relations.20polonius.2399.html#164021568">(Apr 23 2019 at 19:27)</a>:</h4>
<p>hmm I think I missed these comments</p>



<a name="165102018"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/illegal%20subset%20relations%20polonius%2399/near/165102018" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/illegal.20subset.20relations.20polonius.2399.html#165102018">(May 07 2019 at 19:19)</a>:</h4>
<p>OK, so, my thoughts here:</p>



<a name="165102033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/illegal%20subset%20relations%20polonius%2399/near/165102033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/illegal.20subset.20relations.20polonius.2399.html#165102033">(May 07 2019 at 19:19)</a>:</h4>
<p>1. I think it's fine to just have multiple output relations, one per sort of error</p>



<a name="165102064"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/illegal%20subset%20relations%20polonius%2399/near/165102064" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/illegal.20subset.20relations.20polonius.2399.html#165102064">(May 07 2019 at 19:20)</a>:</h4>
<p>2. We may however want to be careful about the duplicates. I wonder if polonius would be a good place to "suppress" them</p>



<a name="165102147"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/illegal%20subset%20relations%20polonius%2399/near/165102147" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/illegal.20subset.20relations.20polonius.2399.html#165102147">(May 07 2019 at 19:20)</a>:</h4>
<p>I'm just imagining it'll be tedious to test with a ton of duplicates</p>



<a name="165102181"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/illegal%20subset%20relations%20polonius%2399/near/165102181" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/illegal.20subset.20relations.20polonius.2399.html#165102181">(May 07 2019 at 19:20)</a>:</h4>
<p>datafrog doesn't currently have any kind of "aggregate" operator I guess (e.g., to take the "minimum" or something)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>